A personal computer, such as the computer 10 shown in FIG. 1, typically uses a bus 12 to connect components or nodes 14, such as processor nodes 16, memory nodes 18 and 20, and I/O nodes 22. Because the bus provides only one path for transactions among the nodes, requests by nodes to engage in multiple transactions at one time are queued, causing delay in the completion of some transactions.
Sometimes it is advantageous to divide a single computer 10 into multiple domains (or logical computers) 24 and 26. This is known as domain partitioning. In a bus-based computer 10, domain partitioning is accomplished through addressing. For example, if the nodes 14 of system 10 use an eight bit addressing scheme (for a maximum total of 256 nodes) and computer 10 is being divided into two domains, the highest order bit can be used to denote the domain. For example, all nodes belonging to domain 1 would have addresses following the pattern 0??????? and all nodes belonging to domain 2 would have addresses following the pattern 1???????.
Some computers used as servers or high-end workstations, such as the computer 50 shown in FIG. 2, do not use a bus for transactions among nodes. Instead a switch 56 connects nodes such as scalable node controller 52 and I/O hub controller 54. Switch 56 may be a cross bar switch or a router, for example. The switch enables the nodes to be connected dynamically on multiple paths. Enough paths can be provided to connect all nodes simultaneously. Delays are reduced and large blocks of data can be transferred.